PHP正则表达式脚本删除任何不是字母或数字0到9的内容,并将空格替换为连字符 - 更改为小写,确保只有一个连字符 - 单词之间没有 - 或---等.
例如:
例子:快速的棕色狐狸跳跃结果:快速的棕色狐狸跳跃
示例:快速的棕色狐狸跳了!结果:快速的棕色狐狸跳了起来
示例:快速的棕色狐狸 - 跳了!结果:快速的棕色狐狸跳了起来
示例:快〜!@ @ $%^&*()_ + = -------棕色{} |] [:"'; <>?.,/ fox - 跳跃!结果: - 快速棕色狐狸跃升
示例:快速1234567890~`!@#$%^&*()_ + = -------棕色{} |] [:"'; <>?.,/ fox - 跳!结果: - 快速-1234567890棕狐狸跃升
任何人都有正则表达的想法?
谢谢!
很抱歉这个问题很长.我决定首先解释问题的背景,因为我的问题可能有其他解决方案.如果你赶时间,请阅读下面的问题.
(编辑 - 同时我添加了一些解决问题的尝试.第四个有我的最终结论,你可以直接跳到它.)
上下文
我有一个哈希表,大约有20k对(key(i),value(i)).我想生成像这样的随机列表
[(key(213),value(213));(key(127),value(127));(key(89),value(89));...]
Run Code Online (Sandbox Code Playgroud)
限制是,一旦我选择了键(213)作为列表的第一个元素,并不是所有键都可以跟随它(我有一些其他函数'决定',它可以决定某个键是否可以是下一个键.列表与否).所以,我想选择一个随机的下一个元素并检查它是否合适 - 在上面的例子中选择了key(127).如果该元素被我的'决定'功能拒绝,我想随机选择另一个.但是我不想选择同样被拒绝的因为我知道它会被再次拒绝而且不仅效率低下,如果只有几个键可以成为下一个键,我也会冒风险,需要很长时间直到找到合适的钥匙.注意,可以重复,例如
[(key(213),value(213));(key(213),value(213));(key(78),value(78));...]
Run Code Online (Sandbox Code Playgroud)
这是可以的,只要'decision'函数接受键(213)作为列表中的下一个.因此,我需要的是一种随机枚举哈希表中的(键,值)对的方法.每当我必须选择一个键时,我创建一个枚举,我通过使用'decision'函数检查每个新元素来消耗(因此,不会发生重复),当我找到一个时,我将它添加到列表中并继续递增列表.问题是我不希望每次哈希表的枚举都相同.我希望它是随机的.(这与我在特定问题中搜索空间的结构有关,这与我的相关性无关.)
我当然可以通过生成随机整数和仅使用列表来实现这一点 - 这就是我目前正在做的事情.但是,由于这是我经常遇到的问题,我想知道是否在某处有一些随机的枚举工具用于哈希表.
问题
哈希表是否有某些随机枚举函数?我知道函数BatHashtbl.enum(电池库),但我认为它总是会给我相同的哈希表相同的枚举(这是正确的吗?).此外,BatHashtbl模块中似乎没有任何类型的东西.我会对类似的东西感兴趣
random_enum: ('a, 'b) t -> int -> ('a * 'b) Enum.t
Run Code Online (Sandbox Code Playgroud)
当提供哈希表和一些整数作为随机生成器的种子时,它将给出哈希表的不同随机枚举.有任何想法吗?
谢谢你的帮助!
最好的,Surikator.
第一次尝试
在Niki在评论中提出建议并通过电池库查看更多细节后,我想出了这个
let rand_enum ht n =
BatRandom.init n;
let hte = BatHashtbl.enum ht
in let s = BatRandom.shuffle hte (* This returns*)
in Array.to_list s
Run Code Online (Sandbox Code Playgroud)
哪种类型
val rand_enum : ('a,'b) BatHashtbl.t -> int -> ('a*'b) list
Run Code Online (Sandbox Code Playgroud)
它使用Fisher-Yates算法进行在O(n)中运行的混洗.它返回一个列表而不是枚举,这很烦人,因为这意味着即使我对使用rand_enum获得的列表的第三个元素感到满意,该函数仍然会计算整个20k元素的随机枚举.哈希表.
最好的,Surikator
第二次尝试
我将模块RndHashtblEnum定义为
(* Random Hashtable Enumeration …Run Code Online (Sandbox Code Playgroud) 我有一个用户表,其中包含| Firstname | Surname | DateOfBirth | ......以及其他一些专栏.在该特定表上,我有一个更新触发器,如果有人更改任何用户值,它会创建审计.
我的问题是,管理层想要通过以下方式显示可视化审计:
DateChanged |Change |Details
--------------------------------------------------------------------------------
2010/01/01 |FirstName Changed |FirstName Changed from "John" to "Joe"
2010/01/01 |FirstName And Lastname Changed|FirstName Changed from "Smith" to "White "And Lastname changed from "els" to "brown"
2010/01/01 |User Deleted |"ark Anrdrews" was deleted
Run Code Online (Sandbox Code Playgroud)
我相信解决这个问题的最佳方法是修改存储过程,但是如何指示触发器记录这些事情呢?
将类转换为接口与将类转换为C#中的另一个类相同吗?在此过程中是否发生了框或拆箱?
interface Area
{
string TxtArea
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud)
转换为它的界面:
public void Test()
{
ExternArea extArea = new ExternArea();
if(extArea is Area)
{
((Area)extArea).TxtArea = "voila";
}
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个基本的推荐引擎,它将获取并存储一个数字ID列表(与书籍相关),将这些ID与具有大量相同ID的其他用户进行比较,并根据这些查找推荐其他书籍.
经过一段谷歌搜索,我发现这篇文章讨论了Slope One算法的实现,但似乎依赖于用户评价被比较的项目.理想情况下,我希望在不需要用户提供评级的情况下实现这一目标.我假设如果用户在他们的收藏中有这本书,他们会喜欢它.
虽然我觉得我可以默认每本书的评级为10,但我想知道我是否可以使用更高效的算法.理想情况下,我想动态计算这些建议(避免批量计算).任何建议,将不胜感激.
似乎只有少数JVM是Java实时规范(RTSJ)的实现.Sun/Oracle Java实时系统超过6000美元,IBM的实时WebSphere超过7000美元,因此许多Java开发人员可能永远没有机会使用其中任何一个.Oracle的JRockit似乎是一个免费的实时Java实现,具有可预测的,确定性的行为,虽然我不确定,因为他们的文档在营销语言上相当沉重.由于小型组织开发并具有较小的用户群,其他较小的实时JVM似乎存在风险.
哪些实时JVM更受欢迎?开发人员最常使用,信任和喜爱哪些?
我想请教您关于功能模板的建议.我有一个功能,可以将一些数据添加到缓冲区.但我还需要将有关数据类型的信息添加到缓冲区中.数据类型是以下枚举:
enum ParameterType
{
UINT,
FLOAT,
DOUBLE
};
Run Code Online (Sandbox Code Playgroud)
我需要从这样的函数创建一个函数模板:
void SomeBuffer::append( double par )
{
appendType( DOUBLE );
memcpy( pStr + _length, &par, sizeof( double ) );
_length += sizeof( double );
appendType( DOUBLE );
}
Run Code Online (Sandbox Code Playgroud)
你能否告诉我如何根据参数类型从ParameterType传递appendType()的值.
template<class T>
void SomeBuffer::append( T par )
{
appendType( ??? );
memcpy( pStr + _length, &par, sizeof( T ) );
_length += sizeof( T );
appendType( ??? );
}
Run Code Online (Sandbox Code Playgroud)
我尝试用一些宏来做但没有成功.非常感谢您的任何建议.
这里是iPhone新手.只是想知道将iPhone应用程序前端(基于Cocoa)连接到基于php/MySql的后端的最佳方法是什么?
iPhone应用程序将频繁访问和更改存储在我们服务器上的数据.
非常感谢
我一直在尝试制作一个ComboBox,它可以在您键入时建议选项,就像IDE的代码建议/代码意义,或者在您键入搜索时的Google搜索建议.
建议将是ComboBox下拉列表中的项目,其中包含在ComboBox的文本框中键入的子字符串.
我试图让ComboBox做到这一点,没有运气,我已经尝试了蒙面的ComboBoxes,甚至尝试将ComboCrtl子类化,但是我总是遇到麻烦,无论是表现明智还是不能做什么我想要的
我的项目列表(建议)中有大约2500个项目,只需清除ComboBox并插入匹配的项目太慢.
我将如何制作这样的ComboBox,或者是否有我可以使用的内置功能?
在显示建议之前,我可以允许一小段延迟,但在我的意见中,整个窗口悬挂一两秒是不可接受的.
在尝试使用文件执行某些操作时,代码就像这样,
File file=new File("aaa.txt");
Run Code Online (Sandbox Code Playgroud)
我在程序中看到的BufferedReader和InputStreamReader也包括在内,你可以用一个简单的例子来解释?我在许多网站上读过有关文件处理的信息,但仍然令人困惑!!!!