Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在Swift正则表达式中匹配但不捕获字符串_Regex_Xcode_Swift2 - Fatal编程技术网

Regex 在Swift正则表达式中匹配但不捕获字符串

Regex 在Swift正则表达式中匹配但不捕获字符串,regex,xcode,swift2,Regex,Xcode,Swift2,我试图在给定字符串中搜索一个单引号('),然后用一个单曲线引号(')替换它。我测试了更多的模式,但每次搜索都会捕获相邻的文本。例如,在字符串“I'm”中,除了“mark”之外,还可以得到“I”和“m” 是否有可能实现这一点,或者在快速实施Regex时,不支持非捕获组 编辑: 范例 将您的报价单本身放入捕获组中 (?:\\S)(')(?:\\S) 例如,当与“我”匹配时,这将捕获[“我”、“我”、“我”] 在Swift正则表达式中匹配但不捕获字符串 在regex中,可以使用lookarounds

我试图在给定字符串中搜索一个单引号('),然后用一个单曲线引号(')替换它。我测试了更多的模式,但每次搜索都会捕获相邻的文本。例如,在字符串“I'm”中,除了“mark”之外,还可以得到“I”和“m”

是否有可能实现这一点,或者在快速实施Regex时,不支持非捕获组

编辑: 范例


将您的报价单本身放入捕获组中

(?:\\S)(')(?:\\S)
例如,当与
“我”
匹配时,这将捕获
[“我”、“我”、“我”]

在Swift正则表达式中匹配但不捕获字符串

在regex中,可以使用lookarounds实现以下行为:

let myPattern = "(?<=\\S)'(?=\\S)"

让我的模式=”(?谢谢。我添加了一个示例,您能告诉我实现是否正确吗?可能是因为结果为空,所以我遗漏了一些内容。
stringbyreplacingmatcheinstall
将替换整个匹配,包括所有捕获组。您可以通过手动更改st范围的字符串值来解决此问题包含第二个捕获组的环。或者,您可以将替换文本更改为“$1”$3”,这样整个字符串将被替换,但新字符串将恢复第一个和第三个捕获组感谢您!您不能只使用lookarounds吗?
let myPattern=“(?)?
(?:\\S)(')(?:\\S)
let myPattern = "(?<=\\S)'(?=\\S)"