我有以下字符串
[HttpContext.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.ReadOnly)]
我想将字符串折叠成
public class SetSessionReadOnlyAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.ReadOnly);
}
}
如何使用正则表达式执行字符串操作?
我可以识别出重复的短语“ PC Model”,但是我不能删除多余的短语而只保留第一个。
答案 0 :(得分:0)
以下内容(在Python中)对您有用吗?
str1 = "PC Model 123, PC Model 456, PC Model XYZ, PC Model A156"
str2 = re.sub(r', PC Model\s+', r'/', str1)
输出
PC Model 123/456/XYZ/A156
[编辑] 我可以考虑一种方法,但是需要多次重新运行该表达式。
str1 = "NB Model 555, PC Model 123, PC Model 456, PC Model XYZ, PC Model A156, PC Model 999, NEW Model FOO"
str2 = re.sub(r'(\S+ Model) (\S+),\s+\1 (\S+)', r'\1 \2/\3', str1)
str2 = re.sub(r'(\S+ Model) (\S+),\s+\1 (\S+)', r'\1 \2/\3', str2)
输出:
B Model 555, PC Model 123/456/XYZ/A156, PC Model 999, NEW Model FOO
它成对地组合模型,因此您需要运行几次表达式。请注意,同一模型必须是连续的