Regex 正则表达式替换前缀和后缀
我想构建一个正则表达式来替换字符串的前缀和后缀。通用字符串是从Regex 正则表达式替换前缀和后缀,regex,Regex,我想构建一个正则表达式来替换字符串的前缀和后缀。通用字符串是从 已知前缀字符串 一些字母a-z或a-z 包含字母、连字符、反斜杠、斜杠和数字的未知字符串 连字符 整数 符号# 一串字母 示例: KnownStringr/df-2e\d-3724#.Gkjsu KnownStringEd\e4v-bn-824#.YKfg KnownStringa-YK224E\yy-379924#.awws 我想替换号码的前缀和后缀,以便获得: MyPrefix3724MyPostfix MyPrefix824
KnownStringr/df-2e\d-3724#.Gkjsu
KnownStringEd\e4v-bn-824#.YKfg
KnownStringa-YK224E\yy-379924#.awws
我想替换号码的前缀和后缀,以便获得:
MyPrefix3724MyPostfix
MyPrefix824MyPostfix
MyPrefix379924MyPostfix
这个正则表达式应该可以做到这一点,但是您应该始终指定您正在使用的语言/框架,因为并非所有正则表达式引擎都支持相同的特性 您要捕获的数字将位于捕获组#3(
(\d+)
)中,大多数语言将其称为\3
(?:KnownString)([a-zA-Z])(.*?)-(\d+)\#\.[a-zA-Z]+
说明:
(?: # Opens NCG
KnownString # Literal KnownString
) # Closes NCG
( # Opens CG1
[a-zA-Z] # Character class (any of the characters within)
# Anything between a and z
# Anything between A and Z
) # Closes CG1
( # Opens CG2
.*? # . denotes any single character, except for newline
# * repeats zero or more times
# ? as few times as possible
)- # Closes CG2
# Literal -
( # Opens CG3
\d+ # Token: \d (digit)
# + repeats one or more times
) # Closes CG3
\# # Literal #
\. # Literal .
[a-zA-Z]+ # Character class (any of the characters within)
# Anything between a and z
# Anything between A and Z
# + repeats one or more times
您还没有指定已知前缀是什么,您应该小心地转义已知字符串中的特殊字符,特别是句号、加号、星号、问号和括号。我投票将此问题作为离题题题结束,因为它要求的是现成的解决方案,并且没有显示出最小的努力。因此基本上,你需要得到#号前最后一个整数,对吗?到目前为止你试过什么?你用什么语言?我试过使用在线工具,如,但对初学者来说太复杂了。我确实需要#之前的最后一个整数,但前提是它在KnownString之后。另外,我需要用包含该整数的新序列替换整个序列。我必须在同一个正则表达式中这样做。我甚至不知道这是否可能当你询问正则表达式标记时,你应该总是指定一种语言。不仅是因为口味的不同(这不是一个特殊搭配的问题),而且替换的方法也因语言而异。