删除特定字母和相邻的字符串值正则表达式
Remove specific letter and adjacent string values regex
我正在查看 space 分隔的字符串列表。我试图找到包含小写字母“n”的部分字符串,该字母在大写字母旁边 而不是 ,然后删除小写字母“n”和任何相邻的 letter/number.示例:
before = ["23n 5T R3",
"4T 3R 2+ 2-",
"-2 +3RF n3",
"Nn1 L9 3+ n",
"un2 L0 -9 e"]
我试图获得如下输出:
after = ["5T R3",
"4T 3R 2+ 2-",
"-2 +3RF",
"Nn1 O9 3+",
"L0 -9 e"]
我不确定如何开始这个正则表达式条件。如果有点难,请见谅。
您可以使用 negative lookbehind 来实现它。
演示: https://regex101.com/r/HKi4tp/2
模式: \b\S*(?<![A-Z])n\S*\b ?
细分:
\b\S*
和\S*\b
:匹配词首和词尾任意非space个字符。 (注意:根据您的需要,\S
可以替换为\w
或[a-zA-Z0-9]
)
(?<![A-Z])n
:匹配 n
前面没有 [A-Z]
?
:在单词 之后匹配一个可选的space
- 代换时,空字符串会删除
我正在查看 space 分隔的字符串列表。我试图找到包含小写字母“n”的部分字符串,该字母在大写字母旁边 而不是 ,然后删除小写字母“n”和任何相邻的 letter/number.示例:
before = ["23n 5T R3",
"4T 3R 2+ 2-",
"-2 +3RF n3",
"Nn1 L9 3+ n",
"un2 L0 -9 e"]
我试图获得如下输出:
after = ["5T R3",
"4T 3R 2+ 2-",
"-2 +3RF",
"Nn1 O9 3+",
"L0 -9 e"]
我不确定如何开始这个正则表达式条件。如果有点难,请见谅。
您可以使用 negative lookbehind 来实现它。
演示: https://regex101.com/r/HKi4tp/2
模式: \b\S*(?<![A-Z])n\S*\b ?
细分:
\b\S*
和\S*\b
:匹配词首和词尾任意非space个字符。 (注意:根据您的需要,\S
可以替换为\w
或[a-zA-Z0-9]
)(?<![A-Z])n
:匹配n
前面没有[A-Z]
?
:在单词 之后匹配一个可选的space
- 代换时,空字符串会删除