//
// RegexKitLite.h
// http://regexkit.sourceforge.net/
// Licensed under the terms of the BSD License, as specified below.
//
/*
Copyright (c) 2008-2010, John Engelhart
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Zang Industries nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifdef __OBJC__
#import <Foundation/NSArray.h>
#import <Foundation/NSError.h>
#import <Foundation/NSObjCRuntime.h>
#import <Foundation/NSRange.h>
#import <Foundation/NSString.h>
#endif // __OBJC__
#include <limits.h>
#include <stdint.h>
#include <sys/types.h>
#include <TargetConditionals.h>
#include <AvailabilityMacros.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef REGEXKITLITE_VERSION_DEFINED
#define REGEXKITLITE_VERSION_DEFINED
#define _RKL__STRINGIFY(b) #b
#define _RKL_STRINGIFY(a) _RKL__STRINGIFY(a)
#define _RKL_JOIN_VERSION(a,b) _RKL_STRINGIFY(a##.##b)
#define _RKL_VERSION_STRING(a,b) _RKL_JOIN_VERSION(a,b)
#define REGEXKITLITE_VERSION_MAJOR 4
#define REGEXKITLITE_VERSION_MINOR 0
#define REGEXKITLITE_VERSION_CSTRING _RKL_VERSION_STRING(REGEXKITLITE_VERSION_MAJOR, REGEXKITLITE_VERSION_MINOR)
#define REGEXKITLITE_VERSION_NSSTRING @REGEXKITLITE_VERSION_CSTRING
#endif // REGEXKITLITE_VERSION_DEFINED
#if !defined(RKL_BLOCKS) && defined(NS_BLOCKS_AVAILABLE) && (NS_BLOCKS_AVAILABLE == 1)
#define RKL_BLOCKS 1
#endif
#if defined(RKL_BLOCKS) && (RKL_BLOCKS == 1)
#define _RKL_BLOCKS_ENABLED 1
#endif // defined(RKL_BLOCKS) && (RKL_BLOCKS == 1)
#if defined(_RKL_BLOCKS_ENABLED) && !defined(__BLOCKS__)
#warning RegexKitLite support for Blocks is enabled, but __BLOCKS__ is not defined. This compiler may not support Blocks, in which case the behavior is undefined. This will probably cause numerous compiler errors.
#endif // defined(_RKL_BLOCKS_ENABLED) && !defined(__BLOCKS__)
// For Mac OS X < 10.5.
#ifndef NSINTEGER_DEFINED
#define NSINTEGER_DEFINED
#if defined(__LP64__) || defined(NS_BUILD_32_LIKE_64)
typedef long NSInteger;
typedef unsigned long NSUInteger;
#define NSIntegerMin LONG_MIN
#define NSIntegerMax LONG_MAX
#define NSUIntegerMax ULONG_MAX
#else // defined(__LP64__) || defined(NS_BUILD_32_LIKE_64)
typedef int NSInteger;
typedef unsigned int NSUInteger;
#define NSIntegerMin INT_MIN
#define NSIntegerMax INT_MAX
#define NSUIntegerMax UINT_MAX
#endif // defined(__LP64__) || defined(NS_BUILD_32_LIKE_64)
#endif // NSINTEGER_DEFINED
#ifndef RKLREGEXOPTIONS_DEFINED
#define RKLREGEXOPTIONS_DEFINED
// These must be identical to their ICU regex counterparts. See http://www.icu-project.org/userguide/regexp.html
enum {
RKLNoOptions = 0,
RKLCaseless = 2,
RKLComments = 4,
RKLDotAll = 32,
RKLMultiline = 8,
RKLUnicodeWordBoundaries = 256
};
typedef uint32_t RKLRegexOptions; // This must be identical to the ICU 'flags' argument type.
#endif // RKLREGEXOPTIONS_DEFINED
#ifndef RKLREGEXENUMERATIONOPTIONS_DEFINED
#define RKLREGEXENUMERATIONOPTIONS_DEFINED
enum {
RKLRegexEnumerationNoOptions = 0UL,
RKLRegexEnumerationCapturedStringsNotRequired = 1UL << 9,
RKLRegexEnumerationReleaseStringReturnedByReplacementBlock = 1UL << 10,
RKLRegexEnumerationFastCapturedStringsXXX = 1UL << 11,
};
typedef NSUInteger RKLRegexEnumerationOptions;
#endif // RKLREGEXENUMERATIONOPTIONS_DEFINED
#ifndef _REGEXKITLITE_H_
#define _REGEXKITLITE_H_
#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__APPLE_CC__) && (__APPLE_CC__ >= 5465)
#define RKL_DEPRECATED_ATTRIBUTE __attribute__((deprecated))
#else
#define RKL_DEPRECATED_ATTRIBUTE
#endif
#if defined(NS_REQUIRES_NIL_TERMINATION)
#define RKL_REQUIRES_NIL_TERMINATION NS_REQUIRES_NIL_TERMINATION
#else // defined(NS_REQUIRES_NIL_TERMINATION)
#define RKL_REQUIRES_NIL_TERMINATION
#endif // defined(NS_REQUIRES_NIL_TERMINATION)
// This requires a few levels of rewriting to get the desired results.
#define _RKL_CONCAT_2(c,d) c ## d
#define _RKL_CONCAT(a,b) _RKL_CONCAT_2(a,b)
#ifdef RKL_PREPEND_TO_METHODS
#define RKL_METHOD_PREPEND(x) _RKL_CONCAT(RKL_PREPEND_TO_METHODS, x)
#else // RKL_PREPEND_TO_METHODS
#define RKL_METHOD_PREPEND(x) x
#endif // RKL_PREPEND_TO_METHODS
// If it looks like low memory notifications might be available, add code to register and respond to them.
// This is (should be) harmless if it turns out that this isn't the case, since the notification that we register for,
// UIApplicationDidReceiveMemoryWarningNotification, is dynamically looked up via dlsym().
#if ((defined(TARGET_OS_EMBEDDED) && (TARGET_OS_EMBEDDED != 0)) || (defined(TARGET_OS_IPHONE) && (TARGET_OS_IPHONE != 0))) && (!defined(RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS) || (RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS != 0))
#define RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS 1
#endif
#ifdef __OBJC__
// NSException exception name.
extern NSString * const RKLICURegexException;
// NSError error domains and user info keys.
extern NSString * const RKLICURegexErrorDomain;
extern NSString * const RKLICURegexEnumerationOptionsErrorKey;
extern NSString * const RKLICURegexErrorCodeErrorKey;
extern NSString * const RKLICURegexErrorNameErrorKey;
extern NSString * const RKLICURegexLineErrorKey;
extern NSString * const RKLICURegexOffsetErrorKey;
extern NSString * const RKLICURegexPreContextErrorKey;
extern NSString * const RKLICURegexPostContextErrorKey;
extern NSString * const RKLICURegexRegexErrorKey;
extern NSString * const RKLICURegexRegexOptionsErrorKey;
extern NSString * const RKLICURegexReplacedCountErrorKey;
extern NSString * const RKLICURegexReplacedStringErrorKey;
extern NSString * const RKLICURegexReplacementStringErrorKey;
extern NSString * const RKLICURegexSubjectRangeErrorKey;
extern NSString * const RKLICURegexSubjectStringErrorKey;
@interface NSString (RegexKitLiteAdditions)
+ (void)RKL_METHOD_PREPEND(clearStringCache);
// Although these are marked as deprecated, a bug in GCC prevents a warning from being issues for + class methods. Filed bug with Apple, #6736857.
+ (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex RKL_DEPRECATED_ATTRIBUTE;
+ (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex options:(RKLRegexOptions)options error:(NSError **)error RKL_DEPRECATED_ATTRIBUTE;
- (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex;
- (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex range:(NSRange)range;
- (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NS
没有合适的资源?快使用搜索试试~ 我知道了~
IOS应用源码之聊天键盘.zip
共468个文件
png:103个
m:44个
h:40个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 30 浏览量
2022-06-18
17:31:20
上传
评论
收藏 916KB ZIP 举报
温馨提示
IOS应用源码之聊天键盘.zip
资源推荐
资源详情
资源评论
收起资源包目录
IOS应用源码之聊天键盘.zip (468个子文件)
007e48324491b2e98e3ba99a0d2535b5212749 190B
018b4c584652ef704ad7e2fb14ce1027e1191e 599B
03caa7cb078ec0536b9960f1c6606f2443c14f 1KB
05b06e1d1ed392b253dc774ce5f1de0cef3de8 420B
07279e74cb07b7a4c0cafd4b22f51fbf448a0c 49KB
080dad0b52ff2a37cb04ed1a69391b8fdfe7d4 2KB
089b3f77dd87bc46c7e38610f37849f1d021b9 2KB
0963640634f30c771505477006d31659a42323 3KB
0c6e82786e4e34c5e858f2ed7d46254828e405 197B
0e83a5fc017f27fb3a3d8ce7087261d64db1d0 3KB
0eca5d0726de8f040f1d25d64858a01e1d3e25 1KB
0fc6138b0e1884bf769a2b063b935a567512d3 196B
107545126cac2a1ccaacfe128dcd8a2fc4e2db 3KB
11416481a206a2c3e45cf4c4f093a2ac41d6cc 3KB
15579be88c1920180d3522e891e8f50a77a04d 3KB
15ad153094f712bf4363940e0e8d1a49f346f0 179B
17a72467adc6f6652cca54bb64c92e19e03f7b 1KB
1850edd72f55a3ccedeff3b62ebb6e9af7f142 185B
1b7ae8fdbbe25f6cd8115153d2809b25dcb423 195B
1bf6a267cb9e403db6f1a2978ae802f4d154a1 1009B
1ed8ff6f122b1cc7f8e9e004f00367a72e65d2 871B
20a7eae6e015f4156e8e8489d1ce71a5a010e6 3KB
21cff94e16c70521e38d0a3cec8575778701ec 361B
223da169dd6aff8e8b5aba772be6d6850a7344 3KB
22d3116743962314299b6daa52fcc66746cb4a 967B
2500aee665a5b5513c1a9de4ea4dd4a04b979e 591B
263cb38380b2cc455b4f7a54e72d64715d457f 394B
26ab2332f757c7afe3a5d5ff94c21ab3437ce7 236B
26c73a7d9e26939de1cf6db3527b1b1b2273e9 495B
272a10d059d0fd98bd2bacdffcf017b52fd0f5 3KB
279c471e50eb40d555591f3d8cd2443a5c24be 131B
29263c1c2c880fdfb0f68b49a5b65712b33c5e 3KB
2a677cd43e78cd0adec9ea1de11a5c17b9db6a 3KB
2acc61ef1b71adb53706b8b78572de4eb8a3b6 1KB
2c7fa0adc4fb94be9e45c39fc51c7f1ec452b4 366B
2eea368ec82b22aba7c23d70cbd303f54ff8c1 172B
2f056a3cc489b0ce41b2f707692f8e5418f30e 2KB
2fa961c0c8b9312346a1d7f2ebb894bdc4e857 3KB
30835b17d8582be43263ca5fd6ac4cb4ab6c94 132B
317ae8d951574f82651a3fe1a32cbfd7302bff 60B
3435c9bee5c433fe166891e698fdc70d81a3de 246B
3715a7fae40f03b81bc46da4f38c4d6b35b19c 3KB
37597b848a1890bb30ba0ff4102f8107cafdcb 61B
3b0ab36651ca648408c176f81e4b2e202efa0b 58B
3c3120c044ca8ea00cc64bab248261e6cd90e2 140B
3c90344ac92146643548461728ea84524d4112 2KB
3ded76f72a0cf6ccdbfc1857ece2a16630f792 344B
3e81d69a77ee86db0c1edd06c293005ef6d220 3KB
3ffc2e82b754215ba8d251d3cfeb08ae9ef3cb 1KB
40526efded0bb42a19678e49c7282064c77257 3KB
4103a60fd7d2c658636aa9031d31e9df0df827 310B
4392fdf704ff6daa06417055cf640614c69cec 3KB
43c77ac4ec06e9b8ecbe64ef73e1f03ee87e1d 3KB
45d32cbb8f37d8451e016e97bba806d51e23ad 194B
4613a79159b1681cec370d22232d0236d1f8c8 2KB
4967a9869cd9648251cf9777e906515675f832 623B
498d2eeb62dd202a4b2c3db439712fbef0628d 169B
49adef906271153283d7521f984c3e15c94980 3KB
49dfd222afd23fbd389c15cf9eebecf709534b 654B
4a424642962cefdafdb656a09f906124ce04e5 3KB
4dcc9ec7a722a95fea8f48f54ff76a712fc30e 178B
4f66040e3c5c84e0db0c438373b0d0de5deacd 3KB
505e35829d2a2ef35fed1da995823db80554a7 187B
5159d3a527f6d77d398b0e716ddd525de71f93 2KB
51604c30573dd4ecfad1828029f770092637eb 3KB
516b4a0c9086f86573be1fa28ca5d245b405cf 3KB
54448721718b8864a929ff53eddbd49189bcaa 373B
544c9e8eb9394800bd91d69a8f5396816861ae 199B
5471a110902ad2a07ab6eef417b3a64160cdee 3KB
564a5c7e34b68359c41a75f553cee1af64afee 374B
5819b6d62c3e66420e47039b6a4425f9c3e463 3KB
599cbfcb3d825b9cc64324aa9713931a649046 623B
5c0ee0950628f476eb7f54ea4abcff53aa5c25 1KB
5c3f93647aff0f1f0dd8abbcafc54c58cbaa8d 363B
5e028f3c05ac2fb0afe5f09b112c1f90614261 480B
5f2a9bfee1d4afd5589286edd7887985d4694c 1KB
602971a1d7109c12a020bc54a1be3365d90e8e 195B
6051e1c6a942d1c815debeb8e29d06b71b8aba 3KB
60a2b9ab9323ca61a0fdebd3b4af46dbe4c272 100B
62551b684840acec89d527b3ed607d15e7ad1c 3KB
64598ac3bb12593f9d6bc75fb0f748e8d0fbe0 3KB
649e98ccb2a602cd00fbb88f76357a022035f9 211B
64ca37ef23ec4b306f3fc55d03b396778e7892 186B
659d099db49785eca18e3b5d3af787c3b15053 594B
669126ed3d3ebaf90b66f91b88229161810d36 234B
67702f6d17fc4834345a329685af342d3e617d 4KB
693b93a85a24e571745160c60daa0e6fbb529f 639B
69a7e5e64acc6029650a9f288d92056256e28a 188B
6adb2e247b2dd6d017d4a79a96eb4b2b635dd3 372B
6b55529f241d090adf6ae71cec658bb5ec5052 191B
6b7bd4602e2cb0abf484321388f8670dc45960 3KB
6d2b086233fbe4fac89d8cf58f6e1581f7b727 3KB
6d504260fdacfca2330daf96f7678e0c9035c9 246B
6df90fce0a86b8ffb3922e4429110b292d67e0 626B
6fffd8ea6c0b27b4d8682fc1121630ca3e1541 3KB
701bb7563838c4e703df12e243ae2d7b22faea 2KB
735149472ae468e662bfebeb2d44f99abb1c17 185B
746645f74fd9006d105e87d25b900d6ba11638 3KB
763d9ebca7601388568770663b8eecd71377c1 3KB
7852ef4c60dc12ebf4c6a6ef4c7615322933a2 169B
共 468 条
- 1
- 2
- 3
- 4
- 5
资源评论
qq_38220914
- 粉丝: 603
- 资源: 4312
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JSP在线维他茶饮销售网站平台源码.zip
- web学习笔记.doc
- 基于pytorch+Unet进行MRI肝脏图像分割源码+数据集+模型.zip
- 在Android Studio中开发一个Android App项目步骤
- 基于yolov8实现进行物体跟踪源码.zip
- Java多线程学习Java多线程学习Java多线程学习Java多线程学习.txt
- 算法数据结构-动态规划算法(Dynamic Programming)超详细总结加应用案例讲解.txt
- 2024最强秋招八股文(精简、纯手打)2024最强秋招八股文(精简、纯手打).txt
- 基于tensorflow多特征融合的微表情识别python源码.zip
- 基于yolov8实现人脸检测的python源码+运行说明.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功