PHP正则表达式环顾四周帮助
基本上,我有一些文本如下所示:PHP正则表达式环顾四周帮助,php,regex,Php,Regex,基本上,我有一些文本如下所示: {hello|hi} this {is really|is actually} great. 我想为preg_replace创建一个正则表达式,它将替换单词“really”,但棘手的是我不希望单词位于{}之内 我一直在尝试使用regex环顾功能,但我就是无法找到一个语法来检查它是否在{但不是在a}之前。试试这个 (?<!{)([^{}\r\n]*?)really(?![^{\r\n]*}) 看到了吗 约束条件: 没有嵌套的括号 没有不匹配的括号 一个
{hello|hi} this {is really|is actually} great.
我想为preg_replace创建一个正则表达式,它将替换单词“really”,但棘手的是我不希望单词位于{}之内
我一直在尝试使用regex环顾功能,但我就是无法找到一个语法来检查它是否在{但不是在a}之前。试试这个
(?<!{)([^{}\r\n]*?)really(?![^{\r\n]*})
看到了吗
约束条件:
- 没有嵌套的括号
- 没有不匹配的括号
$1+替换来替换
(?否定的查找后断言,左边没有{
)
([^{}\r\n]*?)
否定字符类,不允许{}
和换行字符(如果需要可以尝试不使用)延迟匹配0次或更多次,此组的内容存储在$1
(?![^{\r\n]*}
否定的前瞻性断言不允许}
后跟{
或中间的换行字符sin。你能在你的语法中使用{hello | hy | day | goobye}
或{hy hello | good | bad}
吗?这就是我想要的!谢谢:)
$1Replacement