以下是我的文字样本:
text1:“工资是34-36美元” text2:“薪水是34.50- $ 36.20” text3:“工资是45000-34000美元” text4:“工资是45-34000美元”
因此,每当我找到$ 34- $ 36或$ 34.50- $ 36.20这样的模式时,我需要在文本中添加单词小时,每当我找到$ 45000- $ 34000或$ 45- $ 34K这样的模式时,我需要在文本中添加单词工资。
有人可以帮我解决使用正则表达式在R中解决这个问题吗?
感谢-你。
答案 0 :(得分:0)
对于一种情况,它可能适用于否定前瞻正则表达式:
# add 'hour' for 2-digit $-values (with optional decimal fraction)
# but only if NOT followed by 000 or K
gsub("(\\$\\d{1,2}(?:\\.[\\d]+)?(?!000|K))", "\\1 hour", txt, perl=TRUE)
第二种情况:
# add 'salary' for 4-5-digit $-values (with optional decimal fraction)
# but only if followed by 000 or K
gsub("(\\$\\d{1,2}(000|K))", "\\1 salary", txt, perl=TRUE)
我用很少的片段测试了这个。也许你的测试用例比我的更复杂。