我正在使用Python编写一个正则表达式,用XML节点替换部分字符串.
源字符串如下所示:
Hello REPLACE(str1) this is to replace REPLACE(str2) this is to replace
结果字符串应该是这样的:
Hello <replace name="str1"> this is to replace </replace> <replace name="str2"> this is to replace </replace>
谁能帮我?
在Silverlight 3的前几个小时里,作为狂热的WPF用户,我对它不支持的许多事情感到非常失望.这对我来说似乎是一个奇怪的问题,它是如此通用,我无法在网上找到任何关于它的东西.
我有以下XAML:
<controls:TabControl x:Name="workspacesTabControl" Grid.Row="1"
Background="AntiqueWhite" ItemsSource="{Binding Workspaces, ElementName=_root}"/>
Run Code Online (Sandbox Code Playgroud)
但是,我无法看到workspacesTabControl代码隐藏.我想也许IntelliSense只是意味着并试图继续编译它,但是有一个错误:
Error 1 The name 'workspacesTabControl' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)
如何在代码隐藏中访问控件?
编辑:我意识到我粘贴了错误的错误 - 我在UserControl中有两个名为workspacesTabControl和menuStrip的控件.在代码隐藏中,我无法通过他们的名字找到其中任何一个.
以防万一,这里是XAML menuStrip:
<controls:TreeView Grid.ColumnSpan="2" Height="100" x:Name="menuStrip"
ItemContainerStyle="{StaticResource MenuStripStyle}"
ItemsSource="{Binding Menu, ElementName=_root}"/>
Run Code Online (Sandbox Code Playgroud)
再次编辑:
我不确定这是否有用,但我已经看了一下InitializeComponent()代码,这就是我所看到的:
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Windows.Application.LoadComponent(this, new System.Uri("/SapphireApplication;component/SapphireMain.xaml", System.UriKind.Relative));
}
Run Code Online (Sandbox Code Playgroud)
它似乎只是在运行时(不是在编译之前或编译期间)加载XAML,因此menuStrip和workspacesTabControl名称实际上并没有在任何地方注册(因为它们通常在WPF/win表单中).该属性可能是个问题吗?我在哪里可以摆脱所有未来UserControls的这个要求?
之前曾问过一个类似的问题,但没有一个答案真正提供了我想要的东西.
我无法确定功能应该位于哪里.我知道很多人把它们放在顶部,但是如果你把它们尽可能地放在它们的使用位置,你就会减少代码量.即
void f() {
const FOO = 3;
...// some code
if ( bar > FOO ) {
...// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
要么
void f() {
...// some code
const FOO = 3;
if ( bar > FOO ) {
...// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我倾向于在小函数中使用顶部的const,并且在大函数中尽可能地保持跨度,但我想知道其他人的风格/想法是什么.
你如何解析bash中的日期,将不同的字段(年,月,日,小时,分钟,秒)分成不同的变量?
日期格式为: YYYY-MM-DD hh:mm:ss
为什么C#泛型不能像C++模板中那样从泛型类型参数中派生出来?我的意思是我知道这是不可能的,因为CLR不支持这个,但为什么呢?
我知道C++模板和C#泛型之间的深刻差异 - 前者是编译时实体,必须在编译期间解析,而后者是一流的运行时实体.
不过,我没有看到的原因,为什么CLR的设计者并没有拿出一个方案,该方案将最终使CLR泛型类型从泛型类型参数的一个派生.毕竟,这将是非常有用的功能,我个人非常想念它.
编辑:
我想知道一个核心问题,解决这个问题会产生如此高的代价来实现这个功能,这个功能证明它还没有得到实施.例如,检查这个虚构的声明:
class C<T> : T
{
}
Run Code Online (Sandbox Code Playgroud)
正如Eric Lippert已经注意到" 如果T是一个结构怎么办?如果T是一个密封的类型怎么办?如果T是一个接口类型怎么办?如果T是C怎么办?如果T是从C语言中得到什么怎么办?"如果T是带抽象方法的抽象类型?如果T的可访问性低于C怎么办?如果T是System.ValueType怎么办?(你能否有一个继承自System.ValueType的非结构?)System.Delegate怎么样? System.Enum等等? "
正如埃里克继续说的那样," 那些是容易的,显而易见的 ".的确,他是对的.我感兴趣的是一个既不容易也不明显的问题的具体例子,这个问题很难解决.
有没有办法绕过这个bug?
echo json_encode(array('url'=>'/foo/bar'));
{"url":"\/foo\/bar"}
Run Code Online (Sandbox Code Playgroud)
我使用Zend_Json和Zend_Json_Expr,所以我甚至可以在我的js对象中获得回调函数 - 但是我无法获得一个可用格式的url!
echo Zend_Json::encode(array(
'url'=>new Zend_Json_Expr('/foo/bar'),
), false,
array(
'enableJsonExprFinder' => true),
));
Run Code Online (Sandbox Code Playgroud)
生产:
{"url":/foo/bar}
Run Code Online (Sandbox Code Playgroud)
这显然也不对..
无论如何得到:
{"url":"/foo/bar"}
Run Code Online (Sandbox Code Playgroud)
没有做任何荒谬的事情,比如在将它发送到stdio之前找到一种方法将其重新出发?
该System.Collections.ObjectModel.KeyedCollection类是一个非常有用的替代System.Collections.Generic.Dictionary,尤其是当关键数据是存储对象的一部分,或者您希望能够枚举顺序的项目.不幸的是,这个类是抽象的,我无法在核心.NET框架中找到一般的具体实现.
该框架的设计Guidlines书表明,一个具体的实现应为抽象类型(第4.4节抽象类设计)来提供.为什么框架设计者会忽略这样一个有用的类的一般具体实现,特别是当它可以通过简单地暴露一个接受并将Converter从项目存储到其键的构造函数来提供时:
public class ConcreteKeyedCollection<TKey, TItem> : KeyedCollection<TKey, TItem>
{
private Converter<TItem, TKey> getKeyForItem = null;
public ConcreteKeyedCollection(Converter<TItem, TKey> getKeyForItem)
{
if (getKeyForItem == null) { throw new ArgumentNullException("getKeyForItem"); }
this.getKeyForItem = getKeyForItem;
}
protected override TKey GetKeyForItem(TItem item)
{
return this.getKeyForItem(item);
}
}
Run Code Online (Sandbox Code Playgroud) 我的表对格式TABLE和TABLE_TWIN现在
TABLE 是包含大量数据的主表TABLE_TWIN 是一个表与完全相同的字段与一些数据(不同的数据)现在我想将所有行复制TABLE_TWIN到TABLE使用存储过程.我有很多这样的表,并且可以像存储过程一样将表名作为参数,以便我可以对每个表对使用相同的过程.我不想写长INSERT语句,因为这些表每个都有大约50个属性.
我不熟悉PL/SQL所以我需要一些帮助.
谢谢!
新手在这里.我在看公司代码.
似乎A类中没有成员变量但是在A的构造函数中它初始化了一个对象B,即使类A不包含任何类型B的成员变量(或任何成员变量!).
我想我甚至不能理解问题......所以这里发生了什么!?我的直觉是你甚至在尝试初始化它之前需要一个变量.如何在没有对象的情况下初始化对象有可能(或者有什么用呢)?
.H:
class A: public B
{
public:
A(bool r = true);
virtual ~A;
private:
}
Run Code Online (Sandbox Code Playgroud)
的.cpp:
A::A(bool r) : B(r ? B::someEnumeration : B::anotherEnumeration)
{
}
A::~A()
{
}
Run Code Online (Sandbox Code Playgroud)
请帮忙.
谢谢,jbu
我正在寻找一个正则表达式来从查询字符串中删除单个参数,我想在可能的情况下在单个正则表达式中执行此操作.
说我想删除foo参数.现在我用这个:
/&?foo\=[^&]+/
Run Code Online (Sandbox Code Playgroud)
只要foo不是查询字符串中的第一个参数,它就可以工作.如果是,那么我的新查询字符串以&符号开头.(例如," foo=123&bar=456"给出" "的结果&bar=456.)现在,我只是在正则表达式后检查,如果查询字符串以&符号开头,如果是,则将其砍掉.
示例边缘情况:
Input | Expected Output
-------------------------+--------------------
foo=123 | (empty string)
foo=123&bar=456 | bar=456
bar=456&foo=123 | bar=456
abc=789&foo=123&bar=456 | abc=789&bar=456
Run Code Online (Sandbox Code Playgroud)
好的,正如评论中指出的那样,有更多的边缘案例比我最初考虑的更多.我得到以下正则表达式与他们一起工作:
/&foo(\=[^&]*)?(?=&|$)|^foo(\=[^&]*)?(&|$)/
Run Code Online (Sandbox Code Playgroud)
这是从马克拜尔斯的回答中修改的,这就是为什么我接受那个,但罗杰佩特的投入也帮助了很多.
以下是我正在使用的全套测试用例,以及一个测试它们的Javascript代码段:
$(function() {
var regex = /&foo(\=[^&]*)?(?=&|$)|^foo(\=[^&]*)?(&|$)/;
var escapeHtml = function (str) {
var map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return str.replace(/[&<>"']/g, function(m) { return map[m]; });
};
//test cases
var tests …Run Code Online (Sandbox Code Playgroud).net ×2
c++ ×2
regex ×2
bash ×1
c# ×1
clr ×1
code-behind ×1
collections ×1
const ×1
date ×1
generics ×1
initializer ×1
json ×1
list ×1
oracle ×1
parsing ×1
php ×1
plsql ×1
python ×1
query-string ×1
silverlight ×1