我一直在寻找和使用 RegEx 一段时间,并试图找到可以同时应用于 AS3 和 HTML5 的解决方案。
我有一个自定义用户输入部分,他们可以自定义 256 个字符。
我希望他们使用我预定义的代码表 00 - 99,他们可以将它们插入框中以自动生成可以通过数百个示例的响应。
这是一个简单的例子:
Please call: 04
And ask for help for product ID:
03
我可以接受这个并说,好的,我将以下内容放入数组中:
[Please call: ]
[04]
[/n]
[And ask for help for product ID: ]
[/n]
[03]
并可能应用一个标志来说明这是否是数据库条目
[Please call: ][false]
[04][true]
[/n][false]
[And ask for help for product ID: ][false]
[/n][false]
[03][true]
这将是我的程序可以读取的内容。我知道对于 ## 匹配项,要查找数据库条目并插入,但对于其他任何内容,请使用字符串。
我一直在玩 http://gskinner.com/RegExr/
到目前为止,尝试蛮力回答无济于事。
任何帮助将不胜感激。
到目前为止,我想出的最好的比赛如下。虽然这是我第一次使用正则表达式函数,但需要了解如何将这些条目推送到我的有序数组中。
\d\d
\D+
并且需要某种方式将它们组合起来以拉出一个数组......否则我将陷入一个糟糕的循环:
//AS3 example
database_line_item:int = 127;
previous_value_was_int:boolean = false;
_display_text:string = "";
for(var i:int = 0; i < string.length; i++){
if(string.charAt(i) is int){
if(previous_value_was_in){
previous_value_was_int = true;
}else{
_display_text += getDatabaseValue(string.charAt(i-1)+string.charAt(i), database_line_item);
previous_value_was_int = false;
}
}else{
//Hopefully this handles carriage returns, if not, will have to add that in.
_display_text += string.charAt(i);
}
}
// >>>>>>>>> HTML5 Example <<<<<<<<<<<<<
...
我会循环浏览database_line_item,虽然对于400个行项目,这将是一个征税,通过那个字符串。将其拆分为更小的数组会更容易处理。