我尝试使用
(?<key>.{5}keyword.{5}?)
测试“其他字符串关键字其他文字”
它将获得“ring keyword othe”
我希望“akeyword other text”或“other string keyworda”或“akeywordc”也匹配。
如何修改正则表达式?
我有一个很长的字符串,我希望得到find关键字并使用perfix和后缀字符串
来获取它要求5只是一个样本,它可能会变成任何数字,如50
我的问题是关键字的位置是否小于5并且不匹配。
当perfix或后缀字符串长度为
时,如何使用关键字获取perfix或后缀字符串不明。
抱歉,我的问题不明确。
我想用关键字获取perfix或后缀字符串。我希望得到前缀或sufiix字符串最多5个字。
示例:
“abcde keyword abcde”我想得到“bcde keyword abcd”
当前缀字符串小于5字
时“关键字abcde”我想要“关键字abcd”
或后缀字符串少于5个字
“abcd关键字a”我想得到“abcd关键字a”
答案 0 :(得分:2)
这可能是你想要的:
(?<key>.{0,5}keyword[\s\S]{0,5})
答案 1 :(得分:1)
目前尚不清楚你想要传递和失败的内容;特别是.{5}
在keyword
之前要求5个字符,所以我不确定“akeywordc”应该如何匹配。 [\s\S]{5}
说“5个空格或非空格”......所以再次要求5个字符(可能是.{5}
)。
那么:你希望它如何表现?
例如,(?<key>.{1,5}keyword.{1,5})
将在(贪婪)之前或之后匹配1到5个字符。
答案 2 :(得分:1)
答案 3 :(得分:0)
根据Sebastiens的回答,这可能就像(.*?)keyword(.*?)
一样简单,也可能是(.{0,5})
,这仍然取决于你所说的“未知”。
你的意思是任何数量的匹配都是可以接受的,或者只是特定数量的匹配,但你不知道这个数字直到运行时 - 在这种情况下你怎么知道这个数字在运行时(我们无法回答对你而言)。
如果你发布了一组匹配的样本字符串和不匹配的样本字符串,那将是最好的。
从OP更新2编辑:那么您似乎需要标记和sebastiens答案的组合
(?<key>.{0,5}keyword.{0,5})
将包含0到5个字符的前缀和0到5个后缀字符以及匹配